From 55ec31da6c4c64a0d19d646e8b78e3cb56dea2c7 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 31 Mar 2009 13:19:07 +0100 Subject: [PATCH] xend: Check for valid CPU_CAP value when creating new domain Signed-off-by: Michal Novotny Signed-off-by: Masaki Kanno --- tools/python/xen/xend/XendDomainInfo.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 1fa0b338ad..7497c7e435 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -2313,6 +2313,21 @@ class XendDomainInfo: # Set maximum number of vcpus in domain xc.domain_max_vcpus(self.domid, int(self.info['VCPUs_max'])) + # Check for cpu_{cap|weight} validity for credit scheduler + if XendNode.instance().xenschedinfo() == 'credit': + cap = self.getCap() + weight = self.getWeight() + + assert type(weight) == int + assert type(cap) == int + + if weight < 1 or weight > 65535: + raise VmError("Cpu weight out of range, valid values are within range from 1 to 65535") + + if cap < 0 or cap > dominfo.getVCpuCount() * 100: + raise VmError("Cpu cap out of range, valid range is from 0 to %s for specified number of vcpus" % + (dominfo.getVCpuCount() * 100)) + # Test whether the devices can be assigned with VT-d pci = self.info["platform"].get("pci") pci_str = '' -- 2.30.2